박혜린
개발 기간
2021.10.27 ~ 11.1
Project Overview
전체적인 구성 클래스 구성
4 page~7page
1.회원가입/회원조회
8 page~ 10page
3. 기타
스테이지 1~4 11page~ 15page
github https://github.com/HelloCdpa
/escapeRoomProject211028
주요 기능
보너스 스테이지 16page~17
명예회원 18page~19page
상점 20page~21page
2. 게임 실행
< 방탈출 게임 프로젝트>
: 회원가입, 로그인 게임실행.
번호 선택/ 숫자 암호 풀기/
랜덤값을 이용한 몬스터 물리치기
같은 다양한 방법으로 방을
탈출하고 명예회원으로
임명받는 게임.
RoomInterface / GameInterface
주로 회원 정보 관리를 하는 메서드 RoomInterface
방탈출게임 스테이지 메서드 GameInterface로나메서드 설계를 했습니다.
처음에 코드를 시나리오를 모두 메서드에 몰아넣었는데,
중첩되는 실행문들이 많아져 관리도 어렵고 복잡해져서
스테이지 별로 메서드를 만들었더니
시나리오 추가/수정이 쉬워졌습니다.
(객체지향성의 장점을 몸으로 체험해 있었습니다..)
1. 메인 클래스 RoomMain에서는 시작화면과 입력받은 값의 리스트 관리합니다.
2. 반복문 안에서 스캔을 받아 사용자가 숫자를 선택하면 if - else if -else 문으로
해당 숫자의 기능을 실행하도록 합니다.
2. 반복문 안에 try catch사용하여 오류가 나도 반복문으로 돌아 실행할 있게 합니다.
RoomMain
1. 메인 클래스 RoomMain에서는 시작화면과 입력받은 값의 리스트 관리합니다.
2. 반복문 안에서 스캔을 받아 사용자가 숫자를 선택하면 if - else if -else 문으로
해당 숫자의 기능을 실행하도록 합니다.
2. 반복문 안에 try catch사용하여 오류가 나도 반복문으로 돌아 실행할 있게 합니다.
< 테스트 실행 / try-catch 상세 내용>
catch1 - 지정된 타입이 아닌
다른 값을 입력할 경우,오류를 캐치하여
올바른 타입으로 값을 입력할 것을 사용자에게
알려준 다시 반복문으로 돌아갑니다.
catch2 - 회원가입을 하지 않고
바로 게임을 실행 로그인을 하면
인덱스 오류가 발생하므로
캐치하여 사용자에게 회원가입을 지시합니다.
RoomService / GameService
스토리 게임 특성 텍스트가 많아 메서드 관리가 어려워
회원 정보, 게임관리 메서드가 있는 룸서비스 클래스와
시나리오와 게임 진행 메서드가 있는 게임서비스 클래스로 나누었습니다.
<회원 가입메서드>
:아이디와 비밀번호를
스캐너로 입력받고
입력받은 값은 메인에 넘겨주어
저장합니다.
기능 실행 1. 회원가입
기능 실행 2. 회원 정보 조회
<가입한 회원 정보 전체 조회 메서드>
: for-each 문으로 전체 고객의 정보를
출력해줍니다.
< 로그인 체크 메서드 >
: 아이디와 비밀번호를 입력받고,
반복문과 if문으로
일치하는 고객을
찾아 고객의 인덱스
값을 저장해 리턴합니다.
일치하지 않는다면
-1 값을 리턴합니다.
1. 회원가입 / 2. 회원정보 조회 실행화면
1.회원가입 / 2. 회원정보 조회 실행화면
기능 실행 3. 게임실행
게임실행을 하면 룸서비스 클래스가 아닌
게임서비스 클래스 안에 있는
로그인 메서드가 실행 됩니다.
이유는 로그인을 고객의 인덱스 값을 받아와야
게임 진행을 고객의
정보를 변경할 있기 때문입니다.
(게임머니, 등급 )
때문에 받아 고객 인덱스 값을 게임 서비스의
필드 num 전역 변수로 저장했습니다.
<스테이지 1코드>
스테이지 1 ~ 4 대부분 비슷한 코드로,
중첩 while 안에 if문을 사용하여 탈출하는
선택지를 선택하면 모든 반복문에서 빠져나오고
메서드를 나와 다음 스테이지를 진행할 있도록
구성하였습니다.
게임실행, 로그인
스테이지 1 실행화면
.
게임실행, 로그인
스테이지 1 실행화면
<게임 방법>
: 문제와 선택지를 읽고
선택지에 있는 숫자를 골라 입력합니다.
(또는 암호를 입력합니다.)
입력 엔터를 누르면 방을 탈출하거나 ,
탈출하지 못한다면 바로 다시 선택할 있습니다.
마음에 들지 않는 선택을 경우
가지고 있는 돈을 뺏기거나,
등급이 변경될 있습니다.
스테이지2,3스테이지2,3,4 실행화면
스테이지2,3,4 실행화면
보너스 게임메서드 에서는 랜덤을
이용하여 array[크기] 랜덤값을 담아
무작위로 나오는 물건을 던집니다.
공격을 반복하여 몬스터의
hp 음수값으로 떨어지면
보너스 게임을 클리어 하는 기능을
넣었습니다.
보너스 스테이지 실행화면
보너스 스테이지 실행 화면
게임 클리어 고객의 이름을
텍스트 파일을 만들어
저장하는 기능을 넣었습니다.
컴퓨터에 저장되기때문에
게임을 다시 실행해도
명단은 초기화되지 않습니다.
지정된 텍스트 파일에
이름을 저장하는 코드
지정된 텍스트 파일을
출력해 주는 코드
기능 실행 4. 명예회원의 전당
명예회원 텍스트 저장/
명예 회원의 전당 실행화면
명예회원 텍스트 저장/
명예 회원의 전당 실행화면
상점 메서드
: 게임 실행 받은 (이나 )으로
상점에서 등급을 구입하여
등급을 변경 있습니다.
로그인을 ,
사고 싶은 등급에 해당하는
숫자를 입력받아
switch - case문으로
게임머니로 회원등급을 사고
인덱스에 해당하는 고객의
회원등급에 덮어 쓰고
저장하여 메인으로 넘겨줍니다.
기능 실행 4. 상점
상점 실행 화면
상점 실행 화면